//package com.md.api.common.config;
//
//import com.alibaba.fastjson.serializer.SerializerFeature;
//import com.alibaba.fastjson.support.config.FastJsonConfig;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.http.MediaType;
//import org.springframework.http.converter.HttpMessageConverter;
//import org.springframework.http.converter.StringHttpMessageConverter;
//import org.springframework.web.servlet.config.annotation.EnableWebMvc;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
//
//import java.nio.charset.Charset;
//import java.util.ArrayList;
//import java.util.List;
//
//@Configuration
//@EnableWebMvc
//@SuppressWarnings("deprecation")
//public class FastJsonHttpMessageConverter extends WebMvcConfigurerAdapter {
//
//	@Bean(name = "jsonConvert")
//	public HttpMessageConverter<?> fastjsonHttpMessageConverter() {
//		// 定义一个转换消息的对象
//		com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter fastConverter = new com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter();
//
//		// 添加fastjson的配置信息 比如 ：是否要格式化返回的json数据
//		FastJsonConfig fastJsonConfig = new FastJsonConfig();
//
//		fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//		fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
//
//		// 在转换器中添加配置信息
//		fastConverter.setFastJsonConfig(fastJsonConfig);
//
//		List<MediaType> supportedMediaTypes = new ArrayList<>();
//		supportedMediaTypes.add(MediaType.APPLICATION_JSON);
//		supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
//		supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
//		supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
//		supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
//		supportedMediaTypes.add(MediaType.APPLICATION_PDF);
//		supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);
//		supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
//		supportedMediaTypes.add(MediaType.APPLICATION_XML);
//		supportedMediaTypes.add(MediaType.IMAGE_GIF);
//		supportedMediaTypes.add(MediaType.IMAGE_JPEG);
//		supportedMediaTypes.add(MediaType.IMAGE_PNG);
//		supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
//		supportedMediaTypes.add(MediaType.TEXT_HTML);
//		supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);
//		supportedMediaTypes.add(MediaType.TEXT_PLAIN);
//		supportedMediaTypes.add(MediaType.TEXT_XML);
//		fastConverter.setSupportedMediaTypes(supportedMediaTypes);
//
//		HttpMessageConverter<?> converter = fastConverter;
//		return converter;
//	}
//
//	@Bean
//	public StringHttpMessageConverter stringHttpMessageConverter() {
//		StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
//		return converter;
//	}
//
//	 @Override
//	    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//	        converters.add(stringHttpMessageConverter());
//	        converters.add(fastjsonHttpMessageConverter());
//	    }
//
//	    @Override
//	    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
//	        converters.clear();
//	        converters.add(stringHttpMessageConverter());
//	        converters.add(fastjsonHttpMessageConverter());
//	    }
//}
